package com.yuw.datatype;

public class Test02 {

	public static void main(String[] args) {
		// test01();
		//test02();
		test04();
	}

	/**
	 * 位运算符
	 */
	private static void test04() {
		int iVal10 = 3;
		int iVal11 = 4;
		////以下代码不做掌握要求////
		// 按位取反
		int iVal20 = ~iVal10; // 4 -4     0000 0011（补码） ---  1111 1100（补码）---1000 0100（原码）
		// 与、或、异或
		int iVal21 = iVal10 & iVal11; // 0   0011 0100  0000
		int iVal22 = iVal10 | iVal11; // 7              0111
		int iVal23 = iVal10 ^ iVal11; // 7              0111

		System.out.println("iVal20=" + iVal20);
		System.out.println("iVal21=" + iVal21);
		System.out.println("iVal22=" + iVal22);
		System.out.println("iVal23=" + iVal23);
		
		
	}

	/**
	 * 赋值运算符
	 */
	private static void test03() {
		int iVal0 = 10;
		int iVal1 = 0;
		iVal1 += iVal0;

		// += 和 + 区别

		byte bVal0 = 1;
		// +=
		bVal0 += 1; // 1表示的是位移增量单位
		// 等价于
		bVal0 = (byte) (bVal0 + 1);

	}

	/**
	 * 关系运算符
	 */
	private static void test02() {
		int iVal1 = 10;
		int iVal2 = 11;

		boolean isResult0 = ++iVal1 > iVal2++; // false
		System.out.println("运算结果：" + isResult0);
	}

	/**
	 * 算术运算符
	 */
	private static void test01() {
		// 除法运算
		int iVal0 = 10;
		int iVal1 = 3;
		int iVal2 = iVal0 / iVal1;
		System.out.println("iVal2=" + iVal2);// 结果为整数，舍弃小数部分

		double iVal3 = iVal0 / 3.0; // 3.0默认类型是double类型
		System.out.println("iVal3=" + iVal3);

		// 求余运算
		int iVal10 = 0 % 2;// 余数为0
		System.out.println("0%2=" + iVal10);

		// 先增表达式运算
		System.out.println("=========================");
		int iVal21 = 1;
		System.out.println("先增运算之前：iVal21=" + iVal21);

		int iVal31 = ++iVal21; // 先增运算
		System.out.println("先增运算之后：iVal21 = " + iVal21);
		System.out.println("先增运算之后：iVal31=" + iVal31);

		System.out.println("=========================");
		// 自增自减运算
		int iVal20 = 1;
		System.out.println("后增运算之前：iVal20=" + iVal20);
		// 自增表达式
		int iVal30 = iVal20++; // 后增运算表达式
		System.out.println("后增运算之后：iVal20 = " + iVal20);
		System.out.println("后增运算之后：iVal30=" + iVal30);
	}
}
